/* Copyright (c) 2004-2024 Peigen.info. All rights reserved. */

package info.peigen.hotpot.component.schedule.facade.command;

import info.peigen.hotpot.component.schedule.facade.command.order.ScheduleJobChangeAllOrder;
import info.peigen.hotpot.component.schedule.facade.command.order.ScheduleJobCreateOrder;
import info.peigen.hotpot.component.schedule.facade.command.order.ScheduleJobDeleteOrder;
import info.peigen.hotpot.component.schedule.facade.command.order.ScheduleJobEditOrder;
import info.peigen.hotpot.component.schedule.facade.command.result.ScheduleJobChangeAllResult;
import info.peigen.hotpot.component.schedule.facade.command.result.ScheduleJobCreateResult;
import info.peigen.hotpot.component.schedule.facade.command.result.ScheduleJobDeleteResult;
import info.peigen.hotpot.component.schedule.facade.command.result.ScheduleJobEditResult;

/**
 * <b>(ScheduleJobServiceFacade)</b>
 *
 * @author Peigen
 * @version 1.0.0
 * @since 2023/1/7
 */
public interface ScheduleJobServiceFacade {
    /**
     * 创建新任务
     *
     * @param order CreateScheduleJobOrder
     *
     * @return CreateScheduleJobResult
     */
    ScheduleJobCreateResult create(ScheduleJobCreateOrder order);

    /**
     * 编辑任务
     *
     * @param order EditScheduleJobOrder
     *
     * @return EditScheduleJobResult
     */
    ScheduleJobEditResult edit(ScheduleJobEditOrder order);

    /**
     * 删除任务
     *
     * @param order ScheduleJobDeleteOrder
     *
     * @return ScheduleJobDeleteResult
     */
    ScheduleJobDeleteResult delete(ScheduleJobDeleteOrder order);

    /**
     * 修改全部任务状态
     *
     * @param order ScheduleJobChangeAllOrder
     *
     * @return ScheduleJobChangeAllResult
     */
    ScheduleJobChangeAllResult changeAll(ScheduleJobChangeAllOrder order);

}